#ifndef MOVEABLE_H
#define MOVEABLE_H

#include <SFML/System.hpp>
#include <SFML/Graphics/Rect.hpp>

#include "util/Text.h"
#include "util/Debug.hpp"

#include "GameEngine/DefaultValue.hpp"
#include "GameEngine/Map.hpp"

class Moveable
{
    public:

        Moveable(Map*);
        virtual ~Moveable();

        sf::Vector2f 	Getposition();
        void 			Setposition(sf::Vector2f);

        float 	Getspeed();
        void 	Setspeed(float);

        sf::FloatRect GetHitBox();

        virtual void Move(float newTime) = 0;
    protected:
        sf::Vector2f* 	m_position;
        sf::Mutex* 		m_lock;
        Map* 			m_map;
        float 			m_speed;
        float 			m_width;
        float 			m_height;

    private:
};

#endif // MOVEABLE_H
